package com.infore.operation.service;

import java.util.List;
import java.util.Map;

import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import com.infore.operation.entity.AttendanceInfo;
import com.infore.operation.entity.AttendanceRule;
import com.infore.operation.entity.Inspect;
import com.infore.operation.entity.WorkType;
import com.infore.operation.entity.reportDetil;

public interface PunchtheService {
	/**
	 * 打卡提交
	 * 
	 * @param info
	 * @param imges
	 * @return
	 */
	String saveAttendace(AttendanceInfo info, MultipartFile[] imges,Integer supplement);

	/**
	 * 日报提交
	 * @param map
	 * @param imges
	 * @param linkId
	 * @return
	 */
	String saveReport(Map<String, Object> map, MultipartFile[] imges, String linkId);

	List<WorkType> queryworkTypes();

	List<Map<String, Object>> queryinspectionRecords(Integer userId, String date);

	/**
	 * 查询日报列表
	 * 
	 * @param date
	 * @param range
	 * @param userId
	 * @param pageNum
	 * @return
	 */
	List<reportDetil> queryReports(String date, Integer range, Integer userId, Integer pageNum);

	Map<String, Object> queryReportTypeStatistics(String startTime, String endTime, Integer userId, Integer range);

	/**
	 * 查询日报月度提交状态统计
	 * 
	 * @param userId
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	List<Map<String, Object>> queryReportSubmissionStateStatistics(Integer userId, String startTime, String endTime);

	List<Map<String, Object>> queryPowerReportInfo(String date, Integer userId);

	Integer deleteReportId(String reportId);

	/**
	 * 查询规则
	 * 
	 * @param userId
	 * @return
	 */
	AttendanceRule queryRule(Integer userId);

	/**
	 * 查询
	 * 
	 * @param userId
	 * @param date
	 * @return
	 */
	List<AttendanceInfo> queryDayAttendanceRecords(Integer userId, String date);
	/**
	 * 查询月度打卡汇总统计
	 * @param userId
	 * @param date
	 * @return
	 */
	 Map<String, Object>queryMonthTabulateStatistics(Integer userId,String startDate,String endDate);
	 /**
	  * 查询月度打卡状态统计
	  * @param userId
	  * @param startDate
	  * @param endDate
	  * @return
	  */
	 List<Map<String,Object>>queryMonthStatusStatistics(Integer userId,String startDate,String endDate);
	 /*
	  * 
	  */
	 List<Map<String,Object>> queryMonthUnderlingTabulateStatistics( Integer userId, String startDate, String endDate, Integer pageNum);
}
